/**
 * 
 */
package com.cusro.sesion5;

/**
 * @author Peter
 *
 */

public class Animal {
	
	private String nombre;
	private float peso;
	private String habitat;
	private Tamano tamano;
	private Color color;

	/**
	 * 
	 */
	public Animal() {
		super();
	}
	/**
	 * @param nombre
	 */
	public Animal(String nombre) {
		super();
		this.nombre = nombre;
	}
	/**
	 * @param nombre
	 * @param peso
	 * @param habitat
	 * @param tamano
	 * @param color
	 */
	public Animal(String nombre, float peso, String habitat, Tamano tamano,
			Color color) {
		super();
		this.nombre = nombre;
		this.peso = peso;
		this.habitat = habitat;
		this.tamano = tamano;
		this.color = color;
	}
	
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the peso
	 */
	public float getPeso() {
		return peso;
	}
	/**
	 * @param peso the peso to set
	 */
	public void setPeso(float peso) {
		this.peso = peso;
	}
	/**
	 * @return the habitat
	 */
	public String getHabitat() {
		return habitat;
	}
	/**
	 * @param habitat the habitat to set
	 */
	public void setHabitat(String habitat) {
		this.habitat = habitat;
	}
	/**
	 * @return the tamano
	 */
	public Tamano getTamano() {
		return tamano;
	}
	/**
	 * @param tamano the tamano to set
	 */
	public void setTamano(Tamano tamano) {
		this.tamano = tamano;
	}
	
	/**
	 * @return the color
	 */
	public Color getColor() {
		return color;
	}
	/**
	 * @param color the color to set
	 */
	public void setColor(Color color) {
		this.color = color;
	}
	
	
	public String metodoPublico(){
		return "soy publico";
	}
	
	protected  String metodoprotected(){
		return "soy protected";
	}
	private String metodoPrivate(){
		return "soy Private";
	}
	 String metodoDefault(){
		return "soy default";
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((color == null) ? 0 : color.hashCode());
		result = prime * result + ((habitat == null) ? 0 : habitat.hashCode());
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		result = prime * result + Float.floatToIntBits(peso);
		result = prime * result + ((tamano == null) ? 0 : tamano.hashCode());
		return result;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Animal other = (Animal) obj;
		if (color != other.color)
			return false;
		if (habitat == null) {
			if (other.habitat != null)
				return false;
		} else if (!habitat.equals(other.habitat))
			return false;
		if (nombre == null) {
			if (other.nombre != null)
				return false;
		} else if (!nombre.equals(other.nombre))
			return false;
		if (Float.floatToIntBits(peso) != Float.floatToIntBits(other.peso))
			return false;
		if (tamano != other.tamano)
			return false;
		return true;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Animal [nombre=" + nombre + ", peso=" + peso + ", habitat="
				+ habitat + ", tamano=" + tamano + ", color=" + color + "]";
	}


}
